#include <iostream>
#include <vector>
using namespace std;
//序列式容器的重要操作
void test(){
    vector<int> vec={1,2,3};
    vec.push_back(4);
    //在中间位置插入，O(n)
    vec.insert(vec.begin()+2,5);
        
    vec.push_back(4);
    vec.insert(vec.begin()+2,5);
    //尾部删除，中间删除
    vec.pop_back();
    vec.erase(vec.begin()+1);
    //更改某个值
    vec[0]=10;
    *vec.begin()=20;
    //查找某个元素
    cout<<vec[2]<<endl;
   // auto it=find(vec.begin(),vec.end(),3);
    //if(auto it!=vec.end())cout<<"找到了"<<endl;
    
    for(auto it=vec.begin();it<vec.end();++it){
    cout<<*it<<"    ";
    }
}
void test2(){
    vector<int> vec={1,2,3};
    for(auto it=vec.begin();it<vec.end();++it){

    }

        
}
void test1(){
    vector<int> vec={1,2,3};
    //添加元素
    vec.push_back(1);
    vec.insert(vec.begin()+0,5);

    for(auto it=vec.begin();it<vec.end();++it){
        cout<<*it<<"    ";
    }
    cout<<endl;
    //删除元素
    cout<<"删除元素"<<endl;
    vec.pop_back();
    vec.erase(vec.end()-1);

    for(auto it=vec.begin();it!=vec.end();++it){
        cout<<*it<<"    ";
    }
    cout<<endl;
    //查找并修改
    cout<<vec[0]<<endl;
    *(vec.begin()+1)=20;
    cout<<vec[1]<<endl;

    for(auto num:vec){
        cout<<num<<"    ";
    }   
    cout<<endl;

}
//前置++和后置++的区别，前置++性能更好，因为不需要保留旧值，
//后置++需要保留旧值，所以在不需要保留旧值的情况下，还得使用前置++
void test3(){
    int i=10;
    cout<<i++<<endl;
    cout<<i<<endl;
    cout<<++i<<endl;
}
int main(int argc, char * argv[]){
    test1();    
    return 0;
}

